<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        /*
         * 正则表达式
         * 	- admin@atguigu.com
         *  - admin@.com   adminatguigu.com
         *  - 邮件的规则：
         * 		1.前边可以是xxxx乱七八糟
         * 		2.跟着一个@
         * 		3.后边可以是xxxx乱七八糟
         * 		4..com获取其他的乱七八糟
         *
         * 	- 正则表达式用于定义一些字符串的规则，
         * 		计算机可以根据正则表达式，来检查一个字符串是否符合规则，
         * 		获取将字符串中符合规则的内容提取出来
         */

        //创建正则表达式的对象
        /*
         * 语法：
         * 	var 变量 = new RegExp("正则表达式","匹配模式");
         *  使用typeof检查正则对象，会返回object
         * 	var reg = new RegExp("a"); 这个正则表达式可以来检查一个字符串中是否含有a
         * 在构造函数中可以传递一个匹配模式作为第二个参数，
         * 		可以是
         * 			i 忽略大小写
         * 			g 全局匹配模式
         */
        var reg = new RegExp("ab","i");

        var str = "a";

        /*
         * 正则表达式的方法：
         * 	test()
         * 	 - 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则，
         * 		如果符合则返回true，否则返回false
         */
        var result = reg.test(str);
        //console.log(result);
        console.log(reg.test("Ac"));

        /*
 * 使用字面量来创建正则表达式
 * 	语法：var 变量 = /正则表达式/匹配模式
 * 使用字面量的方式创建更加简单
 * 	使用构造函数创建更加灵活
 *
 */
        //var reg = new RegExp("a","i");

        var reg = /a/i;

        //console.log(typeof reg);
        //console.log(reg.test("abc"));

        //创建一个正则表达式，检查一个字符串中是否有a或b
        /*
         * 使用 | 表示或者的意思
         */
        reg = /a|b|c/;

        /*
         * 创建一个正则表达式检查一个字符串中是否有字母
         */
        //reg = /a|b|c|d|e|f|g/;

        /*
         * []里的内容也是或的关系
         * [ab] == a|b
         * [a-z] 任意小写字母
         * [A-Z] 任意大写字母
         * [A-z] 任意字母
         * [0-9] 任意数字
         */
        reg = /[A-z]/;

        //检查一个字符串中是否含有 abc 或 adc 或 aec
        reg = /a[bde]c/;

        /*
         * [^ ] 除了
         */
        reg = /[^ab]/;

        reg = /[^0-9]/;

        console.log(reg.test("12a3456"));
        var str = "1a2b3c4d5e6f7";
        /*
         * split()
         * 	- 可以将一个字符串拆分为一个数组
         * 	- 方法中可以传递一个正则表达式作为参数，这样方法将会根据正则表达式去拆分字符串
         * 	- 这个方法即使不指定全局匹配，也会全都插分
         */

        /*
         * 根据任意字母来将字符串拆分
         */
        var result = str.split(/[A-z]/);


        //console.log(result);

        /*
         * search()
         * 	- 可以搜索字符串中是否含有指定内容
         * 	- 如果搜索到指定内容，则会返回第一次出现的索引，如果没有搜索到返回-1
         * 	- 它可以接受一个正则表达式作为参数，然后会根据正则表达式去检索字符串
         * 	- serach()只会查找第一个，即使设置全局匹配也没用
         */
        str = "hello abc hello aec afc";
        /*
         * 搜索字符串中是否含有abc 或 aec 或 afc
         */
        result = str.search(/a[bef]c/);

        //console.log(result);


        /*
         * match()
         * 	- 可以根据正则表达式，从一个字符串中将符合条件的内容提取出来
         * 	- 默认情况下我们的match只会找到第一个符合要求的内容，找到以后就停止检索
         * 		我们可以设置正则表达式为全局匹配模式，这样就会匹配到所有的内容
         * 		可以为一个正则表达式设置多个匹配模式，且顺序无所谓
         * 	- match()会将匹配到的内容封装到一个数组中返回，即使只查询到一个结果
         *
         *
         */
        str = "1a2a3a4a5e6f7A8B9C";

        result = str.match(/[a-z]/ig);

        //console.log(result[2]);

        /*
         * replace()
         * 	- 可以将字符串中指定内容替换为新的内容
         *  - 参数：
         * 		1.被替换的内容，可以接受一个正则表达式作为参数
         * 		2.新的内容
         *  - 默认只会替换第一个
         */
        //result = str.replace(/[a-z]/gi , "@_@");
        result = str.replace(/[a-z]/gi , "");

        //console.log(result);
        var str = "1a2b3c4d5e6f7";
        /*
         * split()
         * 	- 可以将一个字符串拆分为一个数组
         * 	- 方法中可以传递一个正则表达式作为参数，这样方法将会根据正则表达式去拆分字符串
         * 	- 这个方法即使不指定全局匹配，也会全都插分
         */

        /*
         * 根据任意字母来将字符串拆分
         */
        var result = str.split(/[A-z]/);


        //console.log(result);

        /*
         * search()
         * 	- 可以搜索字符串中是否含有指定内容
         * 	- 如果搜索到指定内容，则会返回第一次出现的索引，如果没有搜索到返回-1
         * 	- 它可以接受一个正则表达式作为参数，然后会根据正则表达式去检索字符串
         * 	- serach()只会查找第一个，即使设置全局匹配也没用
         */
        str = "hello abc hello aec afc";
        /*
         * 搜索字符串中是否含有abc 或 aec 或 afc
         */
        result = str.search(/a[bef]c/);

        //console.log(result);


        /*
         * match()
         * 	- 可以根据正则表达式，从一个字符串中将符合条件的内容提取出来
         * 	- 默认情况下我们的match只会找到第一个符合要求的内容，找到以后就停止检索
         * 		我们可以设置正则表达式为全局匹配模式，这样就会匹配到所有的内容
         * 		可以为一个正则表达式设置多个匹配模式，且顺序无所谓
         * 	- match()会将匹配到的内容封装到一个数组中返回，即使只查询到一个结果
         *
         *
         */
        str = "1a2a3a4a5e6f7A8B9C";

        result = str.match(/[a-z]/ig);

        //console.log(result[2]);

        /*
         * replace()
         * 	- 可以将字符串中指定内容替换为新的内容
         *  - 参数：
         * 		1.被替换的内容，可以接受一个正则表达式作为参数
         * 		2.新的内容
         *  - 默认只会替换第一个
         */
        //result = str.replace(/[a-z]/gi , "@_@");
        result = str.replace(/[a-z]/gi , "");

        //console.log(result);


    </script>
</head>
<body>

</body>
</html>